with Ada.Command_line; use Ada.Command_Line;
with Fonctionnalites; use Fonctionnalites;
with Fonctionnalites.IO;
with Diplome; use Diplome;
with Diplome.IO;

procedure etudiant is

   NOM_FICHIER : String(1..30);

   Mon_Diplome : Type_Diplome;

   Action : Type_Fonctionnalites;

begin

   if( Argument_Count > 1) then
      NOM_FICHIER := Argument(1);
      Diplome.IO.lire(Nom_Fichier,Mon_Diplome);
   end if;

   loop

      Action := Fonctionnalites.IO.Get;

      case Action is
         when Enregistrer =>
            Diplome.Enregistrer(Mon_Diplome);
         when Retirer =>
            Diplome.Retirer(Mon_Diplome);
         when Ponderer =>
            Diplome.Ponderer(Mon_Diplome);
         when Viser =>
            Diplome.Viser(Mon_Diplome);

         when Liberer|Simuler|Attribuer|Modifier =>
            Diplome.Executer(Mon_Diplome,Action);

         when lister =>
            Diplome.Lister(Mon_Diplome);
         when Classer =>
            Diplome.Classer(Mon_Diplome);
         when Sortir =>
            if( Argument_Count >= 1) then
               Diplome.IO.ecrire(Nom_Fichier,Mon_Diplome);
            end if;
            exit;
      end case;

   end loop;

end etudiant;
